package com.ruoyi.customer.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 出差记录核销对象 erp_business_trip_records
 * 
 * @author ruoyi
 * @date 2025-08-04
 */
public class ErpBusinessTripRecords extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID,主键 */
    private Long id;

    /** 跟进类型（如：电话拜访,上门拜访等) */
    @Excel(name = "跟进类型", readConverterExp = "跟进类型（如：电话拜访,上门拜访等)")
    private String followUpType;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 客户联系人 */
    @Excel(name = "客户联系人")
    private String contactPerson;

    /** 联系人电话 */
    @Excel(name = "联系人电话")
    private String contactPhone;

    /** 客户地址 */
    @Excel(name = "客户地址")
    private String customerAddress;

    /** 咨询产品 */
    @Excel(name = "咨询产品")
    private String consultedProduct;

    /** 客户来源（如：线上咨询、展会、客户介绍、朋友介绍） */
    @Excel(name = "客户来源", readConverterExp = "如=：线上咨询、展会、客户介绍、朋友介绍")
    private String customerSource;

    /** 客户行业 */
    @Excel(name = "客户行业")
    private String customerIndustry;

    /** 实际出差日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际出差日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date actualTripDate;

    /** 跟进人 */
    @Excel(name = "跟进人")
    private String followUpPerson;

    /** 跟进目的 */
    @Excel(name = "跟进目的")
    private String followUpPurpose;

    /** 跟进计划 */
    @Excel(name = "跟进计划")
    private String followUpPlan;

    /** 跟进结果 */
    @Excel(name = "跟进结果")
    private String followUpResult;

    /** 打卡地址（现场拜访时填写） */
    @Excel(name = "打卡地址", readConverterExp = "现=场拜访时填写")
    private String checkInAddress;

    /** 跟进时间（如：09:00-11:30） */
    @Excel(name = "跟进时间", readConverterExp = "如=：09:00-11:30")
    private Date followUpTime;

    /** 下次跟进时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下次跟进时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date nextFollowUpDate;

    /** 核销金额（元） */
    @Excel(name = "核销金额", readConverterExp = "元=")
    private Long reimbursementAmount;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setFollowUpType(String followUpType) 
    {
        this.followUpType = followUpType;
    }

    public String getFollowUpType() 
    {
        return followUpType;
    }

    public void setCustomerName(String customerName) 
    {
        this.customerName = customerName;
    }

    public String getCustomerName() 
    {
        return customerName;
    }

    public void setContactPerson(String contactPerson) 
    {
        this.contactPerson = contactPerson;
    }

    public String getContactPerson() 
    {
        return contactPerson;
    }

    public void setContactPhone(String contactPhone) 
    {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone() 
    {
        return contactPhone;
    }

    public void setCustomerAddress(String customerAddress) 
    {
        this.customerAddress = customerAddress;
    }

    public String getCustomerAddress() 
    {
        return customerAddress;
    }

    public void setConsultedProduct(String consultedProduct) 
    {
        this.consultedProduct = consultedProduct;
    }

    public String getConsultedProduct() 
    {
        return consultedProduct;
    }

    public void setCustomerSource(String customerSource) 
    {
        this.customerSource = customerSource;
    }

    public String getCustomerSource() 
    {
        return customerSource;
    }

    public void setCustomerIndustry(String customerIndustry) 
    {
        this.customerIndustry = customerIndustry;
    }

    public String getCustomerIndustry() 
    {
        return customerIndustry;
    }

    public void setActualTripDate(Date actualTripDate) 
    {
        this.actualTripDate = actualTripDate;
    }

    public Date getActualTripDate() 
    {
        return actualTripDate;
    }

    public void setFollowUpPerson(String followUpPerson) 
    {
        this.followUpPerson = followUpPerson;
    }

    public String getFollowUpPerson() 
    {
        return followUpPerson;
    }

    public void setFollowUpPurpose(String followUpPurpose) 
    {
        this.followUpPurpose = followUpPurpose;
    }

    public String getFollowUpPurpose() 
    {
        return followUpPurpose;
    }

    public void setFollowUpPlan(String followUpPlan) 
    {
        this.followUpPlan = followUpPlan;
    }

    public String getFollowUpPlan() 
    {
        return followUpPlan;
    }

    public void setFollowUpResult(String followUpResult) 
    {
        this.followUpResult = followUpResult;
    }

    public String getFollowUpResult() 
    {
        return followUpResult;
    }

    public void setCheckInAddress(String checkInAddress) 
    {
        this.checkInAddress = checkInAddress;
    }

    public String getCheckInAddress() 
    {
        return checkInAddress;
    }

    public void setFollowUpTime(Date followUpTime) 
    {
        this.followUpTime = followUpTime;
    }

    public Date getFollowUpTime() 
    {
        return followUpTime;
    }

    public void setNextFollowUpDate(Date nextFollowUpDate) 
    {
        this.nextFollowUpDate = nextFollowUpDate;
    }

    public Date getNextFollowUpDate() 
    {
        return nextFollowUpDate;
    }

    public void setReimbursementAmount(Long reimbursementAmount) 
    {
        this.reimbursementAmount = reimbursementAmount;
    }

    public Long getReimbursementAmount() 
    {
        return reimbursementAmount;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("followUpType", getFollowUpType())
            .append("customerName", getCustomerName())
            .append("contactPerson", getContactPerson())
            .append("contactPhone", getContactPhone())
            .append("customerAddress", getCustomerAddress())
            .append("consultedProduct", getConsultedProduct())
            .append("customerSource", getCustomerSource())
            .append("customerIndustry", getCustomerIndustry())
            .append("actualTripDate", getActualTripDate())
            .append("followUpPerson", getFollowUpPerson())
            .append("followUpPurpose", getFollowUpPurpose())
            .append("followUpPlan", getFollowUpPlan())
            .append("followUpResult", getFollowUpResult())
            .append("checkInAddress", getCheckInAddress())
            .append("followUpTime", getFollowUpTime())
            .append("nextFollowUpDate", getNextFollowUpDate())
            .append("reimbursementAmount", getReimbursementAmount())
            .toString();
    }
}
